/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.losalpes.cliente;

import com.losalpes.persistence.entity.Client;
import java.util.List;
import javax.ejb.Local;

/**
 * Interfaz encargada de definir los metodos del EJB de Clientes
 * @author Zully
 */
@Local
public interface IClientServices {

    /**
     * Metodo encargado de retornar el listado de clientes registrados en la
     * aplicacion
     * @return Listado de usuarios
     */
    List<com.losalpes.persistence.entity.Client> findAll();

    /**
     * Retorna los usuarios con un mismo numero de identificacion
     * @param id Identificacion a buscar
     * @return Listado de clientes.
     */
    List<com.losalpes.persistence.entity.Client> findByIdentificacion(java.lang.String id);

    /**
     * Metodo encargado de eliminar un cliente del listado de clientes.
     * @param cClient Cliente a eliminar
     */
    void delete(Client cClient);

    /**
     * Metodo encargado de adicionar un cliente al catalogo de clientes existente
     * @param cClient Cliente a adicionar
     */
    void add(Client cClient);

    /**
     * Metodo encargado de encontrar un cliente en el catalogo por su numero de
     * identificacion
     * @param NumeroDocumento Identificacion del cliente a buscar
     * @return
     */
    Client findCliente(String NumeroDocumento);

    /**
     * Metodo para obtener el ultimo cliente encontrado
     * @return Cliente
     */
    Client getClient();

    /**
     * Metodo encargado de encontrar un cliente por su correo
     * @param Email correo electronico del cliente.
     * @return Cliente al que pertenece el correo electronico
     */
    Client findByEmail(String Email);

    /**
     * Metodo encargado de actualizar la informacion del un cliente.
     * @param cClient Cliente a actualizar
     */
    void update(Client cClient);

}
